#include <iostream>
using std::cout;
using std::endl;
//可变参数模板：
//class后面携带的应该是类型， Args表示的是类型，相当于之前的T
//...三个省略号表示的是可变的，不定长的
template <class ...Args>
//Args表示的是类型， args表示的是当前类型的变量
//void func(int z, double x)
//Args相当于int、double；args相当于z、x
void func(Args ...args){
    //cout << sizeof(...args) << endl;
    //int int double char * bool Args是这几个参数 
    cout << sizeof...(Args) << endl;
    //1 2 3.0 hello true args是这几个参数
    cout << sizeof...(args) << endl;
}
void test(){
    //参数有5个
    func(1, 2, 3.0, "hello", true);
}

int main()
{
    test();
    return 0;
}

